package com.huike.clues.service;

import com.huike.clues.result.RoleDeptTreeAjaxResult;
import com.huike.common.core.domain.TreeSelect;
import com.huike.common.core.domain.entity.SysDeptDTO;

import java.util.List;

/**
 * @Desciption ISysDeptService
 * @Author LUXIN
 * @Date 2023-10-16
 */
public interface ISysDeptService {

    /**
     * 获取部门列表
     * @return
     */
    List<SysDeptDTO> deptList(SysDeptDTO sysDeptDTO);

    /**
     * 新增部门
     * @param dept
     */
    void addDept(SysDeptDTO dept);

    /**
     * 修改部门
     * @param dept
     */
    void updateDept(SysDeptDTO dept);

    /**
     * 查询部门列表
     * @param deptId
     * @return
     */
    List<SysDeptDTO> findDeptList(Integer deptId);

    /**
     * 获取对应部门的详细信息
     * @param deptId
     * @return
     */
    SysDeptDTO findDept(Integer deptId);

    /**
     * 删除部门
     * @param deptId
     */
    void deleteDept(Integer deptId);

    /**
     * 获取部门下拉树列表
     * @param sysDeptDTO
     * @return
     */
    List<TreeSelect> findDeptListBy(SysDeptDTO sysDeptDTO);

    /**
     * 获取角色部门树列表
     * @param roleId
     * @return
     */
    RoleDeptTreeAjaxResult findRoleDeptTree(Long roleId);
}
